<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <title>小兔鲜儿 - 新鲜 惠民 快捷!</title>
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="renderer" content="webkit">
  <link rel="shortcut icon" href="./favicon.ico">
  <link rel="stylesheet" href="./css/common.css">
  <link rel="stylesheet" href="./css/register.css">
  <!-- <link rel="stylesheet" href="https://at.alicdn.com/t/font_2143783_iq6z4ey5vu.css"> -->
  <link rel="stylesheet" href="./css/iconfont.css">
</head>

<body>
  <!-- 项部导航 -->
  <div class="xtx_topnav">
    <div class="wrapper">
      <!-- 顶部导航 -->
      <ul class="xtx_navs">
        <li>
          <a href="./login.html">请先登录</a>
        </li>
        <li>
          <a href="./register.html">免费注册</a>
        </li>
        <li>
          <a href="./center-order.html">我的订单</a>
        </li>
        <li>
          <a href="./center.html">会员中心</a>
        </li>
        <li>
          <a href="javascript:;">帮助中心</a>
        </li>
        <li>
          <a href="javascript:;">在线客服</a>
        </li>
        <li>
          <a href="javascript:;">
            <i class="mobile sprites"></i>
            手机版
          </a>
        </li>
      </ul>
    </div>
  </div>
  <!-- 头部 -->
  <div class="xtx_header">
    <div class="wrapper">
      <!-- 网站Logo -->
      <h1 class="xtx_logo"><a href="/">小兔鲜儿</a></h1>
      <!-- 主导航 -->
      <div class="xtx_navs">
        <ul class="clearfix">
          <li>
            <a href="./index.html">首页</a>
          </li>
          <li>
            <a href="./category01.html">生鲜</a>
          </li>
          <li>
            <a href="./category01.html">美食</a>
          </li>
          <li>
            <a href="./category01.html">餐厨</a>
          </li>
          <li>
            <a href="./category01.html">电器</a>
          </li>
          <li>
            <a href="./category01.html">居家</a>
          </li>
          <li>
            <a href="./category01.html">洗护</a>
          </li>
          <li>
            <a href="./category01.html">孕婴</a>
          </li>
          <li>
            <a href="./category01.html">服装</a>
          </li>
        </ul>
      </div>
      <!-- 站内搜索 -->
      <div class="xtx_search clearfix">
        <!-- 购物车 -->
        <a href="./cart-none.html" class="xtx_search_cart sprites">
          <i>2</i>
        </a>
        <!-- 搜索框 -->
        <div class="xtx_search_wrapper">
          <input type="text" placeholder="搜一搜" onclick="location.href='./search.html'">
        </div>
      </div>
    </div>
  </div>
  <div class="xtx-wrapper">
    <div class="container">
      <!-- 卡片 -->
      <div class="xtx-card">
        <h3>新用户注册</h3>
        <form class="xtx-form">
          <div data-prop="username" class="xtx-form-item">
            <span class="iconfont icon-zhanghao"></span>
            <input name="username" type="text" placeholder="设置用户名称">
            <span class="msg"></span>
          </div>
          <div data-prop="phone" class="xtx-form-item">
            <span class="iconfont icon-shouji"></span>
            <input name="phone" type="text" placeholder="输入手机号码  ">
            <span class="msg"></span>
          </div>
          <div data-prop="code" class="xtx-form-item">
            <span class="iconfont icon-zhibiaozhushibiaozhu"></span>
            <input name="code" type="text" placeholder="短信验证码">
            <span class="msg"></span>
            <a class="code" href="javascript:;">发送验证码</a>
          </div>
          <div data-prop="password" class="xtx-form-item">
            <span class="iconfont icon-suo"></span>
            <input name="password" type="password" placeholder="设置6至20位字母、数字和符号组合">
            <span class="msg"></span>
          </div>
          <div data-prop="confirm" class="xtx-form-item">
            <span class="iconfont icon-suo"></span>
            <input name="confirm" type="password" placeholder="请再次输入上面密码">
            <span class="msg"></span>
          </div>
          <div class="xtx-form-item pl50">
            <i class="iconfont icon-queren"></i>
            已阅读并同意<i>《用户服务协议》</i>
          </div>
          <div class="xtx-form-item">
            <button class="submit">下一步</button>
            <!-- <a class="submit" href="javascript:;">下一步</a> -->
          </div>
        </form>
      </div>
    </div>
  </div>
  <!-- 公共底部 -->
  <div class="xtx_footer clearfix">
    <div class="wrapper">
      <!-- 联系我们 -->
      <div class="contact clearfix">
        <dl>
          <dt>客户服务</dt>
          <dd class="chat">在线客服</dd>
          <dd class="feedback">问题反馈</dd>
        </dl>
        <dl>
          <dt>关注我们</dt>
          <dd class="weixin">公众号</dd>
          <dd class="weibo">微博</dd>
        </dl>
        <dl>
          <dt>下载APP</dt>
          <dd class="qrcode">
            <img src="./uploads/qrcode.jpg">
          </dd>
          <dd class="download">
            <span>扫描二维码</span>
            <span>立马下载APP</span>
            <a href="javascript:;">下载页面</a>
          </dd>
        </dl>
        <dl>
          <dt>服务热线</dt>
          <dd class="hotline">
            400-0000-000
            <small>周一至周日 8:00-18:00</small>
          </dd>
        </dl>
      </div>
    </div>
    <!-- 其它 -->
    <div class="extra">
      <div class="wrapper">
        <!-- 口号 -->
        <div class="slogan">
          <a href="javascript:;" class="price">价格亲民</a>
          <a href="javascript:;" class="express">物流快捷</a>
          <a href="javascript:;" class="quality">品质新鲜</a>
        </div>
        <!-- 版权信息 -->
        <div class="copyright">
          <p>
            <a href="javascript:;">关于我们</a>
            <a href="javascript:;">帮助中心</a>
            <a href="javascript:;">售后服务</a>
            <a href="javascript:;">配送与验收</a>
            <a href="javascript:;">商务合作</a>
            <a href="javascript:;">搜索推荐</a>
            <a href="javascript:;">友情链接</a>
          </p>
          <p>CopyRight &copy; 小兔鲜儿</p>
        </div>
      </div>
    </div>
  </div>
  <script>
    // 需求1: 点击发送验证码+倒计时
    // 1.0 获取"发送验证码"标签 - 点击事件
    let codeA = document.querySelector('.code')
    let timer = null; // 保存计时器
    codeA.addEventListener('click', function () {
      if (timer === null) {
        // 1.1 做倒计时效果(核心: 每间隔时间改内容)
        let sTime = 5
        function changeTime() {
          // 1.2 时间-1, 设置内容
          sTime--;
          // 1.3 判断时间已到, 停止计时器, 修改文字
          if (sTime === 0) {
            clearInterval(timer)
            codeA.innerHTML = '重新获取'
            timer = null
            return // 阻止代码继续往下走下一句
          }
          codeA.innerHTML = `${sTime}秒后重新获取`
        }
        changeTime()
        timer = setInterval(changeTime, 1000)
      }
    })
 

   
    // 需求2: 验证用户名
    // 2.0 获取标签
    // input名字name属性必须叫username才能选中
    let userNameInput = document.querySelector('input[name=username]')
    // 2.1 失去焦点事件
    // blur: 失去焦点就触发
    // change: 失去焦点并内容改变时触发
    userNameInput.addEventListener('change', function(){
      // 2.2 创建正则对象, 验证
      let reg = /^[a-zA-Z0-9_-]{6,10}$/
      if (reg.test(this.value) === false) {
        // 2.3 设置提示文字
        this.nextElementSibling.innerHTML = '昵称长度为6-10个字符'
      } else {
        this.nextElementSibling.innerHTML = ''
      }
    })
 
    function valiName(){
      // 2.2 创建正则对象, 验证
      let reg = /^[a-zA-Z0-9_-]{6,10}$/
      if (reg.test(userNameInput.value) === false) {
        // 2.3 设置提示文字
        userNameInput.nextElementSibling.innerHTML = '昵称长度为6-10个字符'
        return false; // 没通过
      } else {
        userNameInput.nextElementSibling.innerHTML = ''
        return true; // 通过
      }
    }
 
    // 需求3: 验证手机号
    // 3.0 获取标签
    let phoneInput = document.querySelector('input[name=phone]')
    // 3.1 change事件
    phoneInput.addEventListener('change', function(){
      // 3.2 创建正则规则-判断
      let reg = /^(13[0-9]|14[5|7]|15[0|1|2|3|4|5|6|7|8|9]|18[0|1|2|3|5|6|7|8|9])\d{8}$/
      if (reg.test(this.value) === true) {
        // 下一个兄弟错误提示内容置空
        this.nextElementSibling.innerHTML = ''
      } else {
        this.nextElementSibling.innerHTML = '请输入正确的手机号'
      }
    })
 
    function valiPhone(){
      let reg = /^(13[0-9]|14[5|7]|15[0|1|2|3|4|5|6|7|8|9]|18[0|1|2|3|5|6|7|8|9])\d{8}$/
      if (reg.test(phoneInput.value) === true) {
        // 下一个兄弟错误提示内容置空
        phoneInput.nextElementSibling.innerHTML = ''
        return true
      } else {
        phoneInput.nextElementSibling.innerHTML = '请输入正确的手机号'
        return false
      }
    }

    // 需求4: 验证码验证
    // 4.0 获取标签
    let codeInput = document.querySelector('input[name=code]')
    // 4.1 change事件
    codeInput.addEventListener('change', function(){
      // 4.2 创建正则规则-判断
      let reg = /^[0-9]{6}$/
      if (reg.test(this.value) === true) {
        // 下一个兄弟错误提示内容置空
        this.nextElementSibling.innerHTML = ''
      } else {
        this.nextElementSibling.innerHTML = '请输入6位验证码'
      }
    })

    function valiCode(){
      let reg = /^[0-9]{6}$/
      if (reg.test(codeInput.value) === true) {
        // 下一个兄弟错误提示内容置空
        codeInput.nextElementSibling.innerHTML = ''
        return true;
      } else {
        codeInput.nextElementSibling.innerHTML = '请输入6位验证码'
        return false;
      }
    }

    // 需求5: 检验密码
    // 5.0 获取标签
    let passInput = document.querySelector('input[name=password]')
    // 5.1 change事件
    passInput.addEventListener('change', function(){
      // 5.2 创建正则规则-判断
      let reg = /^[a-zA-Z0-9_-]{6,20}$/
      if (reg.test(this.value) === true) {
        // 下一个兄弟错误提示内容置空
        this.nextElementSibling.innerHTML = ''
      } else {
        this.nextElementSibling.innerHTML = '请输入6-20位密码'
      }
    })

    function valiPass(){
      let reg = /^[a-zA-Z0-9_-]{6,20}$/
      if (reg.test(passInput.value) === true) {
        // 下一个兄弟错误提示内容置空
        passInput.nextElementSibling.innerHTML = ''
        return true;
      } else {
        passInput.nextElementSibling.innerHTML = '请输入6-20位密码'
        return false;
      }
    }

    // 需求6: 再次确认密码
    // 6.0 获取2个输入框标签
    let confirmInput = document.querySelector('input[name=confirm]')
    // 6.1 再次确认密码-change事件
    confirmInput.addEventListener('change', function(){
      // 6.2 判断2个输入框的value值是否相等
      if (passInput.value === confirmInput.value) {
        this.nextElementSibling.innerHTML = ''
      } else {
        this.nextElementSibling.innerHTML = '2次密码不同'
      }
    })

    function valiConfirm(){
      if (passInput.value === confirmInput.value) {
        confirmInput.nextElementSibling.innerHTML = ''
        return true;
      } else {
        confirmInput.nextElementSibling.innerHTML = '2次密码不同'
        return false;
      }
    }

    // 需求7: 点击下一步(触发form的提交事件), 让上面所有输入框都验证一遍
    // 补充: form标签对象, 才有submit事件(提交事件名)
    let agree = document.querySelector('.pl50 i')
    agree.addEventListener('click', function(){
      // 点击同意协议, 标记亮了
      this.classList.add('icon-queren2')
    })
    // 7.0 获取form标签
    let myForm = document.querySelector('.xtx-form')
    myForm.addEventListener('submit', function(ev){
      ev.preventDefault() // 拦截提交刷新网页行为, 不然我们什么都执行不了
      // 7.1 如何判断它是否勾选了?
      if (agree.classList.contains('icon-queren2') === false) {
        alert('请勾选协议')
        return;
      } else if (valiName() === false) {
        return; // 阻止往下走-因为你名字没通过
      } else if (valiPhone() === false) {
        return;
      } else if (valiCode() === false) {
        return;
      } else if (valiPass() === false) {
        return;
      } else if (valiConfirm() === false) {
        return;
      }


      // 所有if都通过了, 下面就执行下一步的逻辑-比如跳转页面
      alert('可以提交了')
    })
    
 </script>
</body>

</html>